package util;

import java.sql.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import BEAN.EdicaoBean;
import BEAN.EditoraBean;
import BEAN.LivroBean;
import BEAN.UsuarioBean;
import TO.EditoraTO;
import TO.LivroTO;
import TO.UsuarioTO;

public class Convert {
	
	public static UsuarioTO usuarioBeanTO(UsuarioBean usuarioBean){
		UsuarioTO usuarioTO = new UsuarioTO();
		
		usuarioTO.setProntuario(usuarioBean.getProntuario());
		usuarioTO.setSenha(usuarioBean.getSenha());
		usuarioTO.setNome(usuarioBean.getNome());
		if(usuarioBean.getTipo()!=null && !usuarioBean.getTipo().equals(""))
			usuarioTO.setTipo(Integer.parseInt(usuarioBean.getTipo()));
		usuarioTO.setEndereco(usuarioBean.getEndereco());
		usuarioTO.setCidade(usuarioBean.getCidade());
		usuarioTO.setEstado(usuarioBean.getEstado());
		usuarioTO.setCep(usuarioBean.getCep());
		usuarioTO.setTelefone(usuarioBean.getTelefone());
		usuarioTO.setEmail(usuarioBean.getEmail());
		usuarioTO.setCelular(usuarioBean.getCelular());
		
		return usuarioTO;
	}
	
	public static UsuarioBean usuarioTOBean(UsuarioTO usuarioTO){
		UsuarioBean usuarioBean = new UsuarioBean();
		
		usuarioBean.setProntuario(usuarioBean.getProntuario());
		usuarioBean.setSenha(usuarioBean.getSenha());
		usuarioBean.setNome(usuarioBean.getNome());
		usuarioBean.setTipo(String.valueOf(usuarioBean.getTipo()));
		usuarioBean.setEndereco(usuarioBean.getEndereco());
		usuarioBean.setCidade(usuarioBean.getCidade());
		usuarioBean.setEstado(usuarioBean.getEstado());
		usuarioBean.setCep(usuarioBean.getCep());
		usuarioBean.setTelefone(usuarioBean.getTelefone());
		usuarioBean.setEmail(usuarioBean.getEmail());
		usuarioBean.setCelular(usuarioBean.getCelular());
		
		return usuarioBean;
	}
	
	public static LivroTO livroBeanTO(LivroBean livroBean) throws ParseException{
		DateFormat telaFormato = new SimpleDateFormat("dd/MM/yyyy");
		DateFormat sqlFormato = new SimpleDateFormat("yyyy-MM-dd");
		
		LivroTO livroTO = new LivroTO();

		livroTO.setCodigo(livroBean.getCodigo());
		livroTO.setTitulo(livroBean.getTitulo());
		livroTO.setAutor(livroBean.getAutor());
		livroTO.setCodigoEditora(livroBean.getCodigoEditora());
		livroTO.setCodigoCategoria(livroBean.getCodigoCategoria());
		if(livroBean.getEmprestado()!=null && !livroBean.getEmprestado().equals(""))
		   livroTO.setEmprestado(Boolean.valueOf(livroBean.getEmprestado()));
		livroTO.setProntuario(livroBean.getProntuario());
		if(livroBean.getDataEmprestimo()!=null && !livroBean.getDataEmprestimo().equals(""))
			livroTO.setDataEmprestimo(Date.valueOf(sqlFormato.format((telaFormato.parse(livroBean.getDataEmprestimo())))));
		if(livroBean.getDataDevolucao()!=null && !livroBean.getDataDevolucao().equals(""))
			livroTO.setDataDevolucao(Date.valueOf(sqlFormato.format((telaFormato.parse(livroBean.getDataDevolucao())))));
		
		return livroTO;
	}
	
	public static LivroBean livroTOBean(LivroTO livroTO){
		SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
		LivroBean livroBean = new LivroBean();
		
		livroBean.setCodigo(livroTO.getCodigo());
		livroBean.setTitulo(livroTO.getTitulo());
		livroBean.setAutor(livroTO.getAutor());
		livroBean.setCodigoEditora(livroTO.getCodigoEditora());
		livroBean.setCodigoCategoria(livroTO.getCodigoCategoria());
		livroBean.setEmprestado(String.valueOf(livroTO.isEmprestado()));
		livroBean.setProntuario(livroTO.getProntuario());
		if(livroTO.getDataEmprestimo()!=null && !livroTO.getDataEmprestimo().equals(""))
			livroBean.setDataEmprestimo(formatter.format(livroTO.getDataEmprestimo()));
		if(livroTO.getDataDevolucao()!=null && !livroTO.getDataDevolucao().equals(""))
			livroBean.setDataDevolucao(formatter.format(livroTO.getDataDevolucao()));
		
		return livroBean;
	}
	
	public static CategoriaTO categoriaBeanTO (EdicaoBean edicaoBean){
		CategoriaTO categoriaTO = new CategoriaTO();
		
		categoriaTO.setCodigo(edicaoBean.getCodigo());
		categoriaTO.setNome(edicaoBean.getNome());
		
		return categoriaTO;
	}
	
	public static EdicaoBean categoriaTOBean (CategoriaTO categoriaTO){
		EdicaoBean edicaoBean = new EdicaoBean();
		
		edicaoBean.setCodigo(categoriaTO.getCodigo());
		edicaoBean.setNome(categoriaTO.getNome());
		
		return edicaoBean;
		
	}
	
	public static EditoraTO editoraBeanTO (EditoraBean editoraBean){
		EditoraTO editoraTO = new EditoraTO();
		
		editoraTO.setCodigo(editoraBean.getCodigo());
		editoraTO.setCodigo(editoraBean.getNome());
		
		return editoraTO;
		
	}
	
	public static EditoraBean editoraTOBean (EditoraTO editoraTO){
		EditoraBean editoraBean = new EditoraBean();
		
		editoraBean.setCodigo(editoraTO.getCodigo());
		editoraBean.setNome(editoraTO.getNome());
		
		return editoraBean;
				
	}

}
